Vault Secret Operator
개요
볼트의 기능들을 쿠버네티스에서 활용할 수 있도록 만들어진 CRD와 컨트롤러.
쿠버네티스의 시크릿이 볼트의 시크릿을 캐싱하는 역할로 활용될 수 있다.
기능
오퍼레이터 패턴이란 게 사실 뭐 그리 대단히 추가되는 기능이 있는 게 아니라 그냥 다양한 다른 툴을 클러스터 관리 방식으로 운용한다는데 장점이 있는 거긴 한데..
아무튼 문서에서 말하는 기능은 이렇다.
- 시크릿 동기화 지원
- 자동 시크릿 일탈 감지 및 수정
- 워크로드 리소스에 대한 자동 시크릿 교체
- 모니터링 지원
- 시크릿 변환 지원
리소스
어떤 리소스가 있는 구체적으로는 그냥 문서보는 게 낫다.[1]
여기에선 간단하게 핵심이 될만한 것들만 정리한다.
VaultConnection
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultConnection
metadata:
name: vault-connection
spec:
address: http://vault.vault.svc.cluster.local:8200
# 옵션
# headers: []
# tlsServerName: ""
# skipTLSVerify: false
# caCertSecretRef: ""
연결할 볼트 서버 정보를 명시하는 리소스이다.
VaultAuth
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: vault-auth
spec:
# VaultConnection 리소스 명시
# 이 값이 없으면 네임스페이스에 설정된 기본 볼트 커넥션을 쓴다.
vaultConnectionRef: vault-connection
# 인증 방식
method: kubernetes
# Mount to use when authenticating to auth method.
mount: kubernetes
# 인증 메서드 별 추가 필드
kubernetes:
role: example
serviceAccount: default
볼트에 인증을 투사하는 리소스.
VaultStaticSecret
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
namespace: vso-example
spec:
# VaultAuth 리소스 명시
vaultAuthRef: vault-auth
# 어떤 시크릿 엔진 쓸지
mount: kvv1
type: kv-v1
path: eng/apikey/google
refreshAfter: 60s
# 쿠버 시크릿으로 만들어진다.
destination:
create: true
name: static-secret1
kv 엔진의 시크릿을 받아올 때.
VaultDynamicSecret
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultDynamicSecret
metadata:
namespace: vso-example
name: vault-dynamic-secret-db
spec:
vaultAuthRef: vault-auth
mount: db
path: creds/my-postgresql-role
destination:
create: true
name: app-secret
transformation:
excludes:
- .*
templates:
url:
text: |
{{- $host := get .Annotations "myapp.config/postgres-host" -}}
{{- printf "postgresql://%s:%s@%s/postgres?sslmode=disable" (get .Secrets "username") (get .Secrets "password") $host -}}
뭐.. 동적 시크릿 받아올 때인데 사용방식은 크게 다르지 않다.
설치
helm repo add hashicorp https://helm.releases.hashicorp.com
helm search repo hashicorp/vault-secrets-operator
helm install --version 0.10.0 --create-namespace --namespace vault-secrets-operator vault-secrets-operator hashicorp/vault-secrets-operator
헬름 딸깍.
얘네는 차트 레포 말고도 따로 문서를 제공해주네..?[2]
관련 문서
이름 | noteType | created |
---|---|---|
Vault Secret Operator | knowledge | 2025-04-14 |